<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Every Little Bit Hurts</title><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><meta name="keywords" content="Intellon, Atheros, Qualcomm, HomePlug, powerline, communications, INT6000, INT6300, INT6400, AR7400, AR7420"><link rel="home" href="index.html" title="Qualcomm Atheros Open Powerline Toolkit"><link rel="up" href="ch04.html" title="Chapter 4.  Firmware"><link rel="prev" href="ch04s06.html" title="Things to Remember"><link rel="next" href="ch04s08.html" title="Liar! Liar! Pants on Fire!"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">
			Every Little Bit Hurts
			</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch04s06.html">Prev</a> </td><th width="60%" align="center">Chapter 4. 
		Firmware 
		</th><td width="20%" align="right"> <a accesskey="n" href="ch04s08.html">Next</a></td></tr></table><hr></div><div class="section" title="Every Little Bit Hurts"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="firmware-caveats-1"></a>
			Every Little Bit Hurts
			</h2></div></div></div><p>
			With the addition of <span class="application">Push Button Encryption</span>, and other planned features, runtime firmware can now modify the PIB. Consequently, host applications must not assume that the <acronym class="acronym">PIB</acronym> has not changed since it was last downloaded. Atheros strongly recommends that applications always perform a <span class="emphasis"><em>read-modify-write</em></span> when making <acronym class="acronym">PIB</acronym> modifications. Failure to do so can result in infinite reset loops caused when a device modifies the <acronym class="acronym">PIB</acronym> that has just been downloaded. 
			</p><p>
			As one example, recent <acronym class="acronym">PIB</acronym>s contain a network membership bit to indicate that the device has successfully joined the network associated with the current <acronym class="acronym">NMK</acronym>. If the firmware detects the network and discovers that the membership bit is clear then it will join the network and set the bit. The firmware will then attempt to preserve the change by sending a <code class="constant">VS_HOST_ACTION</code> message to the local host. If the host application does not upload and store the changed <acronym class="acronym">PIB</acronym> (as the device requested) before resetting the device then the original <acronym class="acronym">PIB</acronym> will be downloaded again,  after reset, and the process will repeat. Of course, a similar situation will occur when the device leaves the network and again when it joins another network.
			</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch04s06.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch04.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch04s08.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">
			Things to Remember
			 </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 
			Liar! Liar! Pants on Fire!
			</td></tr></table></div></body></html>
